// 对axios进行二次封装
import axios from "axios";
// 引入进度条
import nprogress from "nprogress"
// start方法表示进度条开始 done表示进度条结束
// 引入进度条样式
import "nprogress/nprogress.css"

// 1.利用axios对象的方法去创建一个实例
const requests = axios.create({
    // 发请求的时候路径会出现api，就不用对每一个路径进行写了
    baseURL:"/api",
    // 代表请求超时的时间5s
    timeout:5000,
})
// 请求拦截器：在请求发出前可以做出一些操作
requests.interceptors.request.use((config)=>{
    // 进度条开始
    nprogress.start()
    // config:配置对象，对象里面有一个很重要的header请求头
    return config
})

// 请求拦截器：在请求发出后可以做出一些操作
requests.interceptors.response.use((res)=>{
     // 进度条结束
     nprogress.done()
    // 成功的回调
    return res.data
},(error)=>{
    // 失败的回调
    console.log("响应失败"+error)
    return Promise.reject(new Error('fail'))
})

export default requests

